package com.xyy.saas.payment.dao.mapper;

import com.xyy.saas.payment.dao.model.PayFinanceRefundPlan;
import com.xyy.saas.payment.dao.model.PayFinanceRefundPlanQueryParam;
import com.xyy.saas.payment.dao.model.PinganLoanDetailQuery;
import com.xyy.saas.payment.dao.model.PinganLoanMyLoanQuery;
import com.xyy.saas.payment.dto.PinganLoanCheckAmountDto;
import com.xyy.saas.payment.dto.PinganLoanMyLoanRecordDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

@Mapper
public interface PayFinanceRefundPlanMapper {
    int deleteByPrimaryKey(Long id);

    void batchDelete(@Param("list") List<String> ids);

    int insertSelective(PayFinanceRefundPlan record);

    void batchInsert(List<PayFinanceRefundPlan> list);

    PayFinanceRefundPlan selectByPrimaryKey(Long id);

    PayFinanceRefundPlan selectByLoanBalanceNo(String loanBalanceNo);

    Long queryIdByLoanBalanceNo(String loanBalanceNo);

    List<PayFinanceRefundPlan> query(@Param("list") Set<String> list);

    int updateByPrimaryKeySelective(PayFinanceRefundPlan record);

    int deleteByLoanBalanceNo(String loanBalanceNo);

    Long getTotal(PayFinanceRefundPlanQueryParam planQueryParam);

    List<PayFinanceRefundPlan> pageListByParam(PayFinanceRefundPlanQueryParam planQueryParam);

    int deleteLoan(PayFinanceRefundPlan param);

    List<PinganLoanMyLoanRecordDto> myLoan(PinganLoanMyLoanQuery param);

    List<PayFinanceRefundPlan> loanDetail(PinganLoanDetailQuery pinganLoanDetailQuery);

    PayFinanceRefundPlan curPrincipalAmountBalance(@Param("merchantId") String merchantId);

    List<PinganLoanCheckAmountDto> checkLoanAmount();

}